var app = getApp();
const db = wx.cloud.database({
  throwOnNotFound: false
})
const _ = db.command

Page({
  data: {
    re: false,
    value: '',
    myCurrency:0,
    otherCurrency:0,
    price:0,
    search:false,
    userList:{}

  },
  //获取用户输入
  onChange(e) {
    this.setData({
      value: e.detail,
    });
  },

  // onClick() {
  //   wx.showToast({
  //     title:"点击"+this.data.value
  //   })
  // }

  onLoad: function (options) {


      //判断用户是否授权登录
      wx.getSetting({
        success: function (res) {
          if (res.authSetting['scope.userInfo']) {
            console.log("用户已授权")
          } else {
            console.log("用户未授权")
            wx.redirectTo({
              url: '../mine/login'
            });
          }
        }
      });

    //判断用户是否注册，返回re值true/false
    wx.cloud.callFunction({ //调用云函数获取openid
      name: "getOpenId",
      complete: res => {
        db.collection("userInfo").where({
          _openid: res.result.openid //进行筛选
        }).get({
          success: res => {
            console.log("查找用户注册信息成功", res.data)
            if (res.data.length === 1) {
              this.setData({
                  re: true,
                  myCurrency:res.data[0].timecurrency
                }),
                console.log("用户已注册", this.data.re)
                console.log("我的时间货币为", this.data.myCurrency)
            } else {
              this.setData({
                  re: false
                }),
                console.log("用户未注册", this.data.re)

            }
          },
          fail: res => {
            console.log("查找用户注册信息失败", res)
          }
        })
      }
    });


  },


  //用户点击键盘上的搜索按钮
  onSearch() {
    // wx.showToast({
    //   title:this.data.value
    // })
    let re = this.data.re;

    if (re == false) {
      console.log("用户未注册", this.data.re)
      this.setData({
          re: false
        }),
        wx.showModal({
          title: '提示',
          content: '请先注册成为志愿者！',
          success(res) {
            if (res.confirm) {
              console.log('用户点击确定'),
                wx.navigateTo({
                  url: '../register/newuser',
                })
            } else if (res.cancel) {
              console.log('用户点击取消')
            }
          }
        })

    } else{
  //无法直接数据库查询，权限不足，应使用云函数
      wx.cloud.callFunction({
        name: "searchUser",
        data:{
          userID:this.data.value
        },
        complete: res => {
          console.log("查找用户成功",res)
          if(res.result.data.length == 1){
            this.setData({
              search:true,
              userList:res.result.data[0],
              otherCurrency:res.result.data[0].timecurrency
            })
            console.log("userList:",this.data.userList)
            console.log("该用户时间货币为",this.data.otherCurrency)
          }else{
            this.setData({
              search:false
            })

            wx.showToast({
              title: '无该用户！',
              icon:'none'
            })
          }
        
      },fail:res=>{
        console.log("查找用户失败",res)
      }
    
    });
  }

  },
  
  //获取用户输入
  bindNumInput(e) {
   var price = Number(e.detail.value);
    this.setData({
      price:price
    })
    console.log("price:",price)
  },

  //转账确认
  transferConfirm:function(){
    if (isNaN(this.data.price) || this.data.price=="" ) {
      wx.showToast({
        title: "请输入正确的金额",
        icon: 'none'
      })
    }
  
    else if(this.data.myCurrency<this.data.price){
      wx.showToast({
        title: '时间货币不足',
      })
      console.log("时间货币不足")
    }else{
  
      console.log("弹出兑换确认框")
      wx.showModal({
        title: '转账确认',
        content: '您确认转账吗',
        success: (res) => {
          if (res.confirm) {
            console.log('用户点击确定')

            // 更新本人时间货币
            wx.cloud.callFunction({ //调用云函数获取openid
              name: "getOpenId",
              complete: res => {
                db.collection("userInfo").where({
                  _openid: res.result.openid //进行筛选
                }).get({
                  success: res => {
                    db.collection('userInfo').doc(res.data[0]._id).update({
                      data: {
                        timecurrency: _.inc(-this.data.price)
                      }
                    })
                    console.log("更新成功，本人时间货币减少")

                  },
                  fail: res => {
                    console.log("获取用户_id信息失败", res)
                  }
                })
              }
            });

            //更新用户的时间货币
            wx.cloud.callFunction({
              name: "updateUserCurrency",
              data:{
                userID:this.data.value,
                timecurrency:this.data.price
              },
              complete: res => {
              console.log("updateCurrency调用成功",res)
              
            },fail:res=>{
              console.log("更新用户货币失败",res)
            }
          
          });


            //成功提示
            wx.showToast({
                title: '转账成功！',
                icon: '', //默认值是success,就算没有icon这个值，就算有其他值最终也显示success
                duration: 1200, //停留时间
              })
          
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }
  }

})